package com.crcode.crm.service.retrieval;

import java.util.List;
import java.util.Map;

import com.crcode.crm.bean.user.UserBean;
import com.crcode.crm.utils.PageVo;
import com.crcode.crm.utils.ResultPageUtil;

public interface RetrievalService {
	/**
	 * 公共查询
	 * @author lxw
	 * @date 2019年3月25日
	 * @param table
	 *            企业表：data_enterprise；项目表：data_project
	 * @param text
	 *            模糊匹配的值，多个以@#@符号隔开，例如：张三@#@李四@#@王五
	 * @param higthText
	 *            高级查询的条件json字符串，多个条件以@#@隔开；条件中为或与非逻辑(AND/OR/非得时候 为:AND,-field,值,0)、字段、值、精确或者模糊(1、模糊，0、精确)；例如：AND,name,张三,1@#@AND,-jop,人寿,0
	 * @param vo 
	 *            分页参数 pageIndex,pageSize必传，orderBy 排序字段，只能单个,orderDesc 正序0，反序1
	 * @param user
	 *            用户
	 * @return
	 */
	public ResultPageUtil comSearch(String table, String text, String higthText, PageVo vo, UserBean user);
	
	/**
	 * 附件方案进度检索
	 * @author lxw
	 * @date 2019年4月15日
	 * @param table，方案：data_accessory ；进度：data_progress
	 * @param text 检索词 123@#@12341@#@12312
	 * @param higthText
	 *        高级查询的条件json字符串，多个条件以@#@隔开；条件中为或与非逻辑(AND/OR/非得时候 为:AND,-field,值,0)、字段、值、精确或者模糊(1、模糊，0、精确)；例如：AND,name,张三,1@#@AND,-jop,人寿,0
	 *@param vo 分页工具类 
	 * @param user 用户实体
	 * @return
	 */
	public ResultPageUtil searchProgressAndAccesssory(String table, String text,String higthText,PageVo vo);
	/**
	 * 查询提示总数
	 * @author lxw
	 * @date 2019年4月15日
	 * @param user
	 * @return
	 */
	public Map<String, Object> messageCount(UserBean user);
	
	/**
	 * 提示详情
	 * @author lxw
	 * @date 2019年4月15日
	 * @param type 0、企业联系人生日，1、项目下一步时间，2、进度下一步时间，3、首页查询企业进度，4、首页查询项目进度
	 * @param vo 分页参数
	 * @param user 
	 * @return
	 */
	public ResultPageUtil messageDetails(Integer type,PageVo vo,UserBean user);
	/**
	 * 根据资源序号分组，时间升序查询进度结果集
	 * @author lxw
	 * @date 2019年4月19日
	 * @param uuid
	 * @return
	 */
	public List<Object> loadProgressGroupData(String uuid);
}
